MVP (Supervising Controller)
もとは、Controller がユーザー操作の入力を受け付けて、Model がプレゼンテーションロジックも担っていた
この MVP では、View がユーザー操作の入力を受け付けて、Presenter がプレゼンテーションロジックを担う
View 自身が入力イベントを解釈するのは、Windows 環境のウィジェットがすでに Controller 的な機能を持っていたため Presenter は View の実体を直接知っており、ウィジェットよりも大きな単位で存在する
すなわち、Presenter は複数の view を管理し、階層的に取り扱うもの
iOS における view controller と同じようなイメージ
課題
View への状態反映に 2 つの経路がある
フロー同期 : Presenter が処理の最中に view のインスタンスを直接更新